package com.zb.finance.service;

import com.zb.entity.AccounLoginInfo;
import com.zb.result.PageUtil;
import com.zb.vo.*;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * @Author WEN
 * @Date 2024/5/28 0028
 **/
public interface ConWithdrawService {

    /**
     * 获取可提现工单列表
     * @param networkId 服务商ID
     * @param networkEmpId 服务人员ID
     * @param pageUtil 分页对象
     * @return
     */
    Map<String, Object> getWithdrawOrderList(Long networkId, Long networkEmpId, PageUtil pageUtil);

    /**
     * 保存提现单
     * @param loginInfo
     * @param withdrawVo
     */
    void save(AccounLoginInfo loginInfo, WithdrawVo withdrawVo);

    /**
     * 获取提现单列表
     * @param custAccId 商家ID
     * @param search 搜索关键词
     * @return
     */
    Map<String, Object> getList(Long custAccId, WithdrawListSearchVo search);

    /**
     * 获取提现单详情
     * @param id 提现单详情
     * @return
     */
    WithdrawDetail getDetail(Long id);

    /**
     * 根据提现单ID获取提现工单
     * @param withdrawId 提现单ID
     * @return
     */
    Object getWithdrawOrder(Long withdrawId);

    /**
     * 审核提现单
     * @param loginInfo
     * @param withdrawVo
     */
    void checkWithdraw(AccounLoginInfo loginInfo, CheckWithdrawVo withdrawVo);

    /**
     * 批量完成打款
     * @param loginInfo
     * @param withdrawVo
     */
    void finishWithdraw(AccounLoginInfo loginInfo, FinishWithdrawVo withdrawVo);

    /**
     * 导出提现单
     * @param loginInfo
     * @param response
     * @param search
     */
    void exportWithdrawToExcel(AccounLoginInfo loginInfo, HttpServletResponse response, WithdrawListSearchVo search);
}
